/**
 * 
 */
package studystat;

import java.util.ArrayList;
import java.util.List;


/**
 * Deze klasse bevat alle relevante data over een vak dat de student volgt.
 * @author CWB4
 *
 */
public class Vak {
	// Een lijst met alle data van de lessen voor dit vak.
	private List<Les> lessen;
	// Het aantal studiepunten dat dit vak waard is.
	private int studiepunten;
	// Het totaal aantal pagina's theorie dat er voor dit vak bestaat.
	private int paginasTotaal;
	// Een lijst met de professoren die dit vak geven (en de assistenten).
	private List<Prof> profs;
	// De naam van dit vak.
	private String naam;
	private int oefeningenTotaal;

	
	/**
	 * Maak een nieuw vak aan
	 * @param naam	De naam van het vak
	 */
	public Vak(String naam) {
		this.naam = naam;
	}
	
	/** Enkel een get-methode voor de naam. Er wordt verondersteld dat de verkregen data over de vakken die de
	 * student opneemt correct is aangezien deze van het ISP van de student via Toledo zou komen.
	 * @return De naam van dit vak.
	 */
	public String getNaam() {
		return naam;
	}
	
	public void setLessen(List<Les> lessen) {
		this.lessen = lessen;
	}
	
	public List<Les> getHoorcolleges() {
		List<Les> hoorcolleges = new ArrayList<Les>();
		for(Les les: lessen) {
			if (les.isCollege()) {
				hoorcolleges.add(les);
			}
		}
		return hoorcolleges;
	}
	
	public List<Les> getOefenzittingen() {
		List<Les> oefenzittingen = new ArrayList<Les>();
		for(Les les: lessen) {
			if (!les.isCollege()) {
				oefenzittingen.add(les);
			}
		}
		return oefenzittingen;
	}
	
	public List<Les> getLessen() {
		return lessen;
	}
	
	public void setStudiepunten(int aantalStudiepunten) {
		this.studiepunten = aantalStudiepunten;
	}
	public int getStudiepunten() {
		return studiepunten;
	}
	
	public void setPaginasTotaal(int aantalPaginas) {
		this.paginasTotaal = aantalPaginas;
	}
	public int getPaginasTotaal() {
		return paginasTotaal;
	}
	

	
	public void setOefeningenTotaal(int aantalPaginas) {
		this.oefeningenTotaal = aantalPaginas;
	}
	public int getOefeningenTotaal() {
		return oefeningenTotaal;
	}

	
	public void setProfs(List<Prof> professoren){
		this.profs = professoren;
	}
	/**
	 * Een manier om een prof direct toe te voegen aan de hand van zijn/haar naam
	 * 
	 * @param professorNaam
	 */
	public void addProf(String professorNaam){
		this.profs.add(new Prof(professorNaam));
	}
	public List<Prof> getProfs(){
		return profs;
	}
	/**
	 * Geeft een string terug met de namen van alle professoren die dit vak geven
	 * in het formaat: X, Y en Z
	 * @return
	 */
	public String getProfString(){
		String lijst = "";
		int i = 0;
		for(i=0;i<profs.size()-2;i++) {
			lijst += profs.get(i) + ", ";
		}
		lijst += profs.get(profs.size()-2) + " en " + profs.get(profs.size()-1);
		return lijst;
	}
	
	public String getName(){
		return naam;
	}
	
	
}
